
# ifndef __DFX_AUDIO_DEVICE_H__
# define __DFX_AUDIO_DEVICE_H__

# include "dfxAudioSource.h"
# include "dfxSingleton.h"

namespace DFX
{
    class DFX_EXPORT AudioDevice : public Singleton<AudioDevice>
    {
    protected:

        bool    mInitialized;

    public:

        AudioDevice()
            : mInitialized(false)
        {
        }

        virtual ~AudioDevice()
        {
        }

        bool IsInitialized() const
        {
            return mInitialized;
        }

        virtual DFXRESULT Initialize() = 0;
        virtual DFXRESULT Destroy() = 0;

        virtual AudioSource* CreateAudioSource() = 0;
    };
}

# endif